package com.yungu.swift.system.sys.dao;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.system.sys.model.dto.SysPointSiteDto;
import com.yungu.swift.system.sys.model.vo.AdminSystemPointSiteVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * SystemPointSiteMapper数据库操作接口类
 **/

public interface SysPointSiteMapper<T extends SysPointSiteDto> extends IMapper<T> {

    List<SysPointSiteDto> findOrigins(Map<String, Object> map);

    List<SysPointSiteDto> findDestByOrigin(Map<String, Object> map);

    List<SysPointSiteDto> findByIds(Map<String, Object> map);

    List<SysPointSiteDto> findByOrderDri(Map<String, Object> map);

    @Update("update t_system_point_site set status=#{status} where uuid=#{uuid}")
    Integer updateStatus(@Param("uuid") String uuid, @Param("status") Integer status);

    @Update("update t_system_point_site set state=#{state} where uuid=#{uuid}")
    Integer updateState(@Param("uuid") String uuid, @Param("state") Integer state);

    Integer countExisted(Map<String, Object> paras);

    List<SysPointSiteDto> findOriginsByQueue(Map m);

    List<SysPointSiteDto> findSiteByCity(@Param("cityUuid") String cityUuid);

    PageList<AdminSystemPointSiteVo> queryPageVo(Map var1, PageBounds var2);

    /**
     * 根据代理信息获取全量起终点数据
     *
     * @param paramMap
     * @return
     */
    List<SysPointSiteDto> allByOrganization(Map<String, Object> paramMap);
}